package teste_uc;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import sun.org.mozilla.javascript.internal.ast.NewExpression;


import br.fatec.dominio.SGE_WEB;
import br.fatec.dominio.convenio.INMantemConvenio;
import br.fatec.dominio.convenio.INMantemConvenioImpl;
import br.fatec.dominio.empresa.Empresa;
import br.fatec.dominio.empresa.INMantemEmpresa;
import br.fatec.dominio.empresa.INMantemEmpresaImpl;
import br.fatec.dominio.estagio.INMantemEstagio;
import br.fatec.dominio.responsavel.INMantemResponsavel;
import br.fatec.dominio.responsavel.INMantemResponsavelImpl;
import br.fatec.servico.DAOFactory;
import br.fatec.servico.MySQLDAOFactory;
import br.fatec.servico.MySQLEmpresaDAO;
import br.fatec.servico.MySQLUsuarioDAO;
import br.fatec.servico.OracleSQLDAOFactory;
import br.fatec.servico.OracleSQLEmpresaDAO;

public class UC01CadastrarEmpresa {

    INMantemEmpresa mantemEmpresa2; //configure build path - add um external jar acha esta interface
	SGE_WEB sgeweb;
	INMantemEmpresa mantemEmpresa;
	INMantemConvenio mantemConvenio;
	INMantemResponsavel mantemResponsavel;
	INMantemEstagio mantemEstagio;
	@Before
	public void setUp() throws Exception {
		mantemEmpresa = new INMantemEmpresaImpl();
		mantemConvenio = new INMantemConvenioImpl();
		mantemResponsavel = new INMantemResponsavelImpl();
		sgeweb = new SGE_WEB(mantemEmpresa, mantemConvenio, mantemResponsavel, mantemEstagio);
	}

	@After
	public void tearDown() throws Exception {
		MySQLEmpresaDAO empresaDAO = new MySQLEmpresaDAO(); 
		//OracleSQLEmpresaDAO empresaDAO = new OracleSQLEmpresaDAO(); 
		empresaDAO.exclui("14.572.457.0001-85");
	}

	/*
	 * Teste da camada de servico
	 */
	@Test
	public final void CT01Valida_getEmpresaDAO() {
		assertTrue(DAOFactory.getDAOFactory(DAOFactory.MYSQL).getEmpresaDAO() instanceof MySQLEmpresaDAO);
		//assertTrue(DAOFactory.getDAOFactory(DAOFactory.ORACLE).getEmpresaDAO() instanceof OracleSQLEmpresaDAO);
		
	}
	@Test
	public final void CT02ValidaConexao_com_sucesso() {
		assertNotNull("valida a conexao =>", MySQLDAOFactory.criaConexao());
		//assertNotNull("valida a conexao =>", OracleSQLDAOFactory.criaConexao());
	}
	/*
	 * Teste da camada de dominio
	 */
	@Test
	public final void CT03UC01FBCadastraEmpresa_com_sucesso(){
	try {
		assertEquals( "CADASTRO REALIZADO COM SUCESSO", sgeweb.cadastraEmpresa("14.572.457.0001-85", "International Business Machines",	"IBM", "Rua da IBM", "552", "Vila IBM", "bloco 2", "1", "2651-8758") );
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	}

}
